package net.oschina.arvin.multi.field.sort;

import java.util.Collections;
import java.util.List;

/**
 * @author Arvin
 * @time 2017/10/1 21:50
 */
public class MultiFieldSorter {

    /**
     * 排序， 通过指定排序属性和升序或降序配置
     *
     * @param dataList 要排序的数据
     * @param sorts    排序配置，使用 ',' 号分割每一个属性排序字段配置， 格式为 field1:asc,field2:desc......
     * @param <T>      数据类型
     * @return
     */
    public static <T> List<T> sort(List<T> dataList, String sorts) {
        if (dataList == null || dataList.size() < 2) {
            return dataList;
        }
        MultiFieldSortComparator comparator = new MultiFieldSortComparator(sorts, dataList.get(0).getClass());
        Collections.sort(dataList, comparator);
        return dataList;
    }
}
